package com.huaxin.device.dto.request;

import com.huaxin.device.dto.enums.validation.ValidWaterproofGrade;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class ElectricalWellUpdateReqDTO {

    @Schema(description = "电井ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "well_001")
    @NotBlank(message = "ID不能为空")
    private String id;

    @Schema(description = "电井名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "强电井1号")
    @NotBlank(message = "电井名称不能为空")
    private String wellName;

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "WELL-01")
    @NotBlank(message = "编号不能为空")
    private String wellCode;

    @Schema(description = "覆盖楼层（如 B1-F10）", example = "B1-F10")
    private String floorRange;

    @Schema(description = "面积（㎡）", example = "5.00")
    private BigDecimal area;

    @Schema(description = "是否有防火门", example = "true")
    @NotNull(message = "防火门信息不能为空")
    private Boolean fireDoorExists;

    @Schema(description = "防水等级：IPX0/IPX1/IPX2/IPX3/IPX4/IPX5/IPX6/IPX7/IPX8/IPX9", example = "IPX5")
    @ValidWaterproofGrade
    private String waterproofGrade;

    @Schema(description = "位置描述", example = "1号楼电梯旁")
    private String location;

    @Schema(description = "组织ID", example = "org-01")
    private String orgId;

    @Schema(description = "家庭ID", example = "family-01")
    private String familyId;
}